/**
 * @(#)com.tansun.easycare.rule.utils.ExcelConstant.java Copyright (c) 2017 天阳宏业科技股份有限公司
 */
package com.tansun.easycare.rule.excel.utils;

import java.util.ArrayList;
import java.util.List;

/**
 * Excel常量类
 * @author zengdong
 * @version 1.0  2017年4月19日
 * @modified zengdong  2017年4月19日  <创建>
 */
public class ExcelConstant {

    static {
        //初始化class类型数据
        ExcelConstant.CLASS_PARAMS_TYPE = new ArrayList<String>();
        ExcelConstant.CLASS_PARAMS_TYPE.add("IN");
        ExcelConstant.CLASS_PARAMS_TYPE.add("OUT");
        ExcelConstant.CLASS_PARAMS_TYPE.add("ALL");
        ExcelConstant.CLASS_PARAMS_TYPE.add("OTH");

        ExcelConstant.FIELD_PARAMS_TYPE = new ArrayList<String>();
        ExcelConstant.FIELD_PARAMS_TYPE.add("BOOLEAN");
        ExcelConstant.FIELD_PARAMS_TYPE.add("DATE");
        ExcelConstant.FIELD_PARAMS_TYPE.add("DOUBLE");
        ExcelConstant.FIELD_PARAMS_TYPE.add("LONG");
        ExcelConstant.FIELD_PARAMS_TYPE.add("STRING");
        ExcelConstant.FIELD_PARAMS_TYPE.add("EMUN");

        ExcelConstant.FIELD_TF_TYPE = new ArrayList<String>();
        ExcelConstant.FIELD_TF_TYPE.add("true");
        ExcelConstant.FIELD_TF_TYPE.add("false");
        ExcelConstant.FIELD_TF_TYPE.add("");

    }

    /**
     * 数据集类型
     */
    public static String RULE_DATASET_TYPE = "ruleDataset";

    /**
     * 数据集变量类型
     */
    public static String RULE_DATAPARAMS_TYPE = "ruleDataparams";

    /**
     * 离散型变量类型
     */
    public static String RULE_DATADOMAIN_TYPE = "ruleDatadomain";

    /**
     * 数据集导出文件
     */
    public static String RULE_DATASET_IMPORT_FILENAME = "datasetExport.xls";

    //-------------------数据校验信息----------------------
    public static String CLASS_ISNULL_ERRORMSG = "class中的第v0行的v1不能为空";
    public static String CLASS_OVER_LENGTH = "class中的第v0行的v1长度过长，最大长度为v2";
    public static String CLASS_PARAMTYPE_ERRORMSG = "class中的第v0行的v1类型错误，应为“IN，OUT，ALL或OTH”";
    public static String CLASS_ISEXISTS_INDB_ERRORMSG = "class中的第v0行的v1在库中存在重复";
    public static String CLASS_ISEXISTS_INEXCEL_ERRORMSG = "class中的第v0行的v1在Excel中存在重复";
    public static List<String> CLASS_PARAMS_TYPE;

    public static String FIELD_OVER_LENGTH = "field中的第v0行的v1长度过长，最大长度为v2";
    public static String FIELD_IDCONTAIN_LETTER = "field中的第v0行的id要包含字母";
    public static String FIELD_ISNULL_ERRORMSG = "field中的第v0行的v1不能为空";
    public static String FIELD_CLASS_ISNOTEXISTS = "field中的第v0行的class在class列表中不存在";
    public static String FIELD_ISEXISTS_INEXCEL_ERRORMSG = "field中的第v0行的v1在Excel中存在重复";
    public static List<String> FIELD_PARAMS_TYPE;
    public static String FIELD_PARAMTYPE_ERRORMSG = "field中的第v0行的v1类型错误，应为“Boolean、Date、Double、Long、String或Emun”";
    public static String FIELD_DOMAIN_NOTEQUAL_ID = "field中的第v0行的domain值和id不一致";

    public static List<String> FIELD_TF_TYPE;
    public static String FIELD_TF_ERRORMSG = "field中的第v0行的v1类型错误，应为“true,false或空字符串”";

    public static String DOMAIN_OVER_LENGTH = "domain中的第v0行的v1长度过长，最大长度为v2";
    public static String DOMAIN_IDCONTAIN_LETTER = "domain中的第v0行的id要包含字母";
    public static String DOMAIN_DOMAINIDCONTAIN_LETTER = "domain中的第v0行的domain_id要包含字母";
    public static String DOMAIN_DOMAIN_NOTIN_PARAMS = "domain中的第v0行的domain_id在params中不存在";
    public static String DOMAIN_ISNULL_ERRORMSG = "domain中的第v0行的v1不能为空";
    public static String DOMAIN_ISEXISTS_INEXCEL_ERRORMSG = "domain中的第v0行的v1在Excel中存在重复";

    /**
     * 获取错误信息常量
     * @param stencil 模版字串
     * @param value 带入值
     * @return
     */
    public static String getErrorMsgConstant(String stencil, String... value) {
        if (value.length > 0) {
            for (int i = 0; i < value.length; i++) {
                stencil = stencil.replace("v" + i, value[i]);
            }
            return stencil;
        } else {
            return stencil;
        }
    }
}
